home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1995-11-25 | 3.8 KB | 76 lines |
- (******************************************************************************)
- (* This MODULE is Public Domain. Copy me like a beast! *)
- (* Christian Ledermann *)
- (* Wölfelkofen 2 *)
- (* 84166 Adlkofen *)
- (******************************************************************************)
- (* *)
- (* Started: 20.12.92 03:54:30 *)
- (* Version: 20.12.89 01:054:12:54 *)
- (* *)
- (******************************************************************************)
- (* *)
- (* Diese Software ist ohne jede Garantie. Ich verspreche *)
- (* keinerlei Wartung und übernehme keine Verantwortung für Schäden die *)
- (* durch die Benutzung dieses Programmes entstehen. *)
- (* Jegliche Ersatzansprüche lehne ich ab. *)
- (* *)
- (******************************************************************************)
-
- DEFINITION MODULE Sounds;
-
- (************************************************************************)
- (* Soundprogramiereung ganz einfach ! *)
- (* ähnlich wie in OMIKRON o. GFA Basic *)
- (* Christian Ledermann 4/93 *)
- (************************************************************************)
-
- TYPE ChanelFlag = (OneOff,TwoOff,ThreeOff);
- Chanel = SET OF ChanelFlag;
-
- CONST AllOn = Chanel{};
- AllOff = Chanel{OneOff..ThreeOff};
-
-
- (* Kanal:= Kanal 1..3 des Soundchips *)
-
- (* 125000 / Frequenz := Periode *)
- PROCEDURE Sound(Kanal,Periode:CARDINAL);(* Periode 0..4095 *)
-
- (* Hüllkurve 1..3,9 linear fallend dann 0 \____ *)
- (* Hüllkurve 4..7,15 linear steigend dann 0 /|____ *)
- (* Hüllkurve 8 Sägezahn steigend \|\|\|\ *)
- (* Hüllkurve 10 Dreieck anfangs Fallend \/\/\/\ *)
- (* " 11 linear fallend dann laut \|----- *)
- (* " 12 Sägezahn steigend /|/|/|/| *)
- (* " 13 linear steigend dann laut /----- *)
- (* " 14 Dreieck anfangs steigend /\/\/\ *)
-
- PROCEDURE Wave(Kanal,(*Hüll-*)Kurve, Dauer :CARDINAL);
- (* Dauer: Werte von 0..65536 möglich *)
-
- PROCEDURE Volume(Kanal,Vol:CARDINAL); (* Werte von 0..15 möglich *)
-
- PROCEDURE Noise(Hoehe:CARDINAL); (* Werte von 0..31 möglich *)
-
- PROCEDURE SetSoundAndNoise(NoiseChanels,SoundChanels:Chanel);
- (* Mit NoiseChanels bzw SoundChanels wird angegeben *)
- (* welche der Ton- oder Rauschkanäle ausgeschaltet !! *)
- (* werden *)
- (* Zu jedem Tonkanal kann Rauschen dazugemischt werden *)
-
- PROCEDURE SoundAndNoiseOnOff(NoiseFlag,SoundFlag:CARDINAL);
- (* Eigendlich dieselbe PROCEDURE wie SetSoundAndNoise *)
- (* Nur das hier ein CARDINAL anstelle des SETs *)
- (* übergeben wird. *)
- (* KanalFlag := 0 => Kanal 1, 2 u. 3 an *) (*000*)
- (* KanalFlag := 1 => Kanal 1 aus, 2 u. 3 an *) (*001*)
- (* KanalFlag := 2 => Kanal 2 aus, 1 u. 3 an *) (*010*)
- (* KanalFlag := 3 => Kanal 1 u. 2 aus, 3 an *) (*011*)
- (* KanalFlag := 4 => Kanal 3 aus, 1 u. 2 an *) (*100*)
- (* KanalFlag := 5 => Kanal 1 u. 3 aus, 2 an *) (*101*)
- (* KanalFlag := 6 => Kanal 3 u. 2 aus, 1 an *) (*110*)
- (* KanalFlag := 7 => Kanal 1, 2 u. 3 aus *) (*111*)
-
- END Sounds.
-